#ifndef _OCPP_ObliqueNodeVisitor_H_
#define _OCPP_ObliqueNodeVisitor_H_

#include "ObliqueUtil.h"

namespace OCPP
{
	namespace Cesium
	{
		using ObliqueNodeInfoVec = std::vector<ObliqueNodeInfo>;

		class ObliqueNodeVisitor : public osg::NodeVisitor
		{
		public:
			ObliqueNodeVisitor(std::shared_ptr<ObliqueConfig> config, String tileID,
				std::shared_ptr<ObliqueTileStatistic> statstic);
			virtual void apply(osg::PagedLOD& lod);
			virtual void apply(osg::Geode& node);

			ObliqueNodeInfo nodeInfo;
			std::shared_ptr<ObliqueConfig> _config;
			std::shared_ptr<ObliqueTileStatistic> _statstic;
			String _tileID;
		};
	}
}


#endif
